﻿/**
 * This is a part of MCServe, which is available under the Apache license 2.0.
 * With this code, you may do whatever you want as long as that is not in conflict with this license.
 * In addition, you should have a reference to the original project to include (http://mcserve.codeplex.com).
 * 
 * Author       : Lars Krämer ( Xe77a )
 * Website      : http://www.lkraemer.de
 * Project      : MCServe (http://mcserve.codeplex.com)
 * Copyright    : Copyright (c) 2013 lkraemer.de
 * License      : http://mcserve.codeplex.com/license
 * Description  : This is a part of the core functionality of the server
 */

using System;
using System.ComponentModel;

namespace MCServeCore.Components
{
    public class IpObject : INotifyPropertyChanged
    {
        private String _Ip = "";

        /**
         * Konstruktor
         */
        public IpObject()
        {
            Ip = "";
        }
        public IpObject(string ip)
        {
            Ip = ip;
        }

        public String Ip
        {
            get
            {
                return _Ip;
            }
            set
            {
                _Ip = value;
                NotifyPropertyChanged(x => x.Ip);
            }
        }

        #region INotifyPropertyChanged Member

        public event PropertyChangedEventHandler PropertyChanged;
        private void NotifyPropertyChanged<TValue> (System.Linq.Expressions.Expression<Func<IpObject, TValue>> propertySelector)
        {
            if (PropertyChanged != null)
            {
                var memberExpression = propertySelector.Body as System.Linq.Expressions.MemberExpression;
                if (memberExpression != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs(memberExpression.Member.Name));
                }
            }
        }
        #endregion

    }
}
